---
title: 设备管理
description: I/O 软件、设备管理技术
---


## 概述
设备是<RedSpan>计算机与外界交互的工具，具体负责计算机与外部的输入/输出工作，所以常称为外部设备（简称外设）</RedSpan>。

在计算机系统，将负责管理设备和输入/输出的机构称为 I/O 系统。因此，I/O 系统由设备、控制器、通道（具有通道的计算机系统）、总线和 I/O 软件组成。

### 设备的分类
* <RedSpan>按数据组织分类</RedSpan>：块设备、字符设备。
* <RedSpan>按照设备功能分类</RedSpan>： 输入设备、输出设备、存储设备、网络联网设备、供电设备。
* <RedSpan>资源分配角度分类</RedSpan>： 独占设备、共享设备和虚拟设备。
* <RedSpan>数据传输速率分类</RedSpan>： 低速设备、中速设备、高速设备。

### 设备管理的任务和目标
设备管理的任务是保证在多道程序环境下，当 <RedSpan>多个进程竞争使用设备时</RedSpan>，按一定的策略分配和管理各种设备，控制设备的各种操作，完成 I/O 设备与主存之间的数据交换。

设备管理的主要功能是动态地掌握并记录设备的状态、设备分配和释放、缓冲区管理、实现物理 I/O 设备的操作、提供设备使用的用户接口及设备和控制。








## I/O 软件
I/O 设备管理软件的所有层次及每一层功能如下图：
<img src="https://wkq-img.oss-cn-chengdu.aliyuncs.com/20241028205439.png"/>

实例：当用户程序试图读一个硬盘文件时，需要通过操作系统实现这一步骤，<RedSpan>与设备无关软件检查高速缓存中有无要读的数据块，若没有，则调用设备驱动程序，向 I/O 硬件发出一个请求。</RedSpan>然后，用户进程阻塞并等待磁盘操作的完成，当 <RedSpan>磁盘操作完成时，硬件产生一个中断，转入中断处理程序</RedSpan>。中断处理程序检查中断的原因，认识到 <RedSpan>这时磁盘读取操作已经完成，于是唤醒用户进程取回从磁盘读取的信息，从此结束此次 I/O 请求。</RedSpan>用户进程在得到了所需的磁盘内容之后继续运行。





## 设备管理技术

一台设备独占，在同一时间只能由一个进程使用，其它进程只能等待，且不知道什么时候打印机空闲，此时，极大浪费了外设的工作效率。

引入 SPOOLING（外围设备联机操作）技术，就是在外设上建立两个数据缓冲区，分别称为输入井和输出井,这样，无论多少进程，都可以共用这一台打印机，只需要将打印命令发出，数据就会排队在缓冲区，打印机会自动按顺序打印，实现了物理外设的共享，使得每个进程都感觉在使用一个打印机，这就是物理设备的虚拟化。如下图所示：


<img src="https://wkq-img.oss-cn-chengdu.aliyuncs.com/20241028211948.png"/>

:::tip
SPOOLING 技术将独占设备转变为了共享设别，虽然只是虚拟共享。
:::